package com.sihai.ehr.service;

import java.util.List;

import com.sihai.core.Limit;
import com.sihai.core.LimitedList;
import com.sihai.core.Sorter;
import com.sihai.ehr.model.biz.ExamAward;
import com.sihai.ehr.model.biz.ExamAwardAuditing;

/**
 * 考核奖惩服务接口
 * 
 * @author henry
 * 
 */
public interface ExamAwardService {
	/**
	 * 根据奖惩ID获取奖惩项目对象
	 * 
	 * @param id
	 * @return
	 */
	ExamAward getExamAward(Long id);

	/**
	 * 根据组织ID获取奖惩列表对象
	 * 
	 * @param organizationId
	 * @param awardType
	 * @param limit
	 * @param sorter
	 * @return
	 */
	LimitedList<ExamAward> searchExamAward(Long organizationId, int awardType,
			Limit limit, Sorter sorter);
	
	LimitedList<ExamAward> searchExamAward(Long organizationId, int awardType,int year,int month,
			Limit limit, Sorter sorter);

	/** 根据员工任职编号获取奖罚列表 */
	LimitedList<ExamAward> searchExamAwardByWorkId(Long workId, Limit limit, Sorter sorter);	//int awardType,
	
	/** 根据员工任职编号获取奖罚列表日期 */
	LimitedList<ExamAward> searchExamAwardByWorkIdMonth(Long workId,int year,int month, Limit limit, Sorter sorter);	//int awardType,
	
	
	/**
	 * 保存考核奖惩项目
	 * 
	 * @param examAwardItem
	 */
	void saveExamAward(ExamAward examAward);

	/**
	 * 保存奖惩审核进度
	 * 
	 * @param examAward
	 * @param auditNo
	 */
	void saveAwardAuditingProcess(ExamAward examAward, int auditNo);

	/**
	 * 移出考核奖惩项目
	 * 
	 * @param examAwardItems
	 */
	void removeExamAward(String examAwards);

	/**
	 * 搜索奖惩审核列表
	 * 
	 * @param awardId
	 * @param limit
	 * @param sorter
	 * @return
	 */
	List<List<ExamAwardAuditing>> searchExamAwardAuditings(Long awardId,
			Limit limit, Sorter sorter);
}
